#!/bin/bash
today=`date -d "-1 day" +%Y%m%d`
# ip
bdip='192.168.58.201'
# 用户名
bdusername="root"
# password = in=$( base64 <<< "123456")
bdpassword=$( base64 -d <<< MTIzNDU2Cg==)
# 端口
bdport="3306"
# 数据库
bdname="movie_bigdata"

#前期准备
echo "前期准备"
#1、准备u.date数据文件
echo "1、准备u.date数据文件"

#2、根据日期 yyyyMMdd 在hdfs上创建 通用层(RAW)，缓冲层(ODS)，聚合层(FCT)
echo "2、根据日期 yyyyMMdd 在hdfs上创建 通用层(RAW)，缓冲层(ODS)，聚合层(FCT)"
nohup hdfs dfs -mkdir -p /data/inner/RAW/${today} > /dev/null 2>&1 &
nohup hdfs dfs -mkdir -p /data/inner/ODS/${today} > /dev/null 2>&1 &
nohup hdfs dfs -mkdir -p /data/inner/FCT/${today} > /dev/null 2>&1 &

#3、为每个需求创建一个mysql表
#echo "3、为每个需求创建一个mysql表"
mysql -h${bdip} -u${bdusername} -p${bdpassword} ${bdname}  -P${bdport} --default-character-set=utf8 -A    -e "source  /root/movie/sql/mymovie.sql"

#需求：
# 需求1 根据用户观看的日期的时间分析在一周中哪一天观看电影的用户最多，也就是电影浏览量峰值。
echo "需求1 根据用户观看的日期的时间分析在一周中哪一天观看电影的用户最多，也就是电影浏览量峰值"
# 需求2 统计分析电影评分排行榜TOP10（后续可以对用户进行电影推荐）
echo "需求2 统计分析电影评分排行榜TOP10（后续可以对用户进行电影推荐）"
#原始数据：
# 用户的ID | 观看电影的ID | 用户对于电影的评分|观看电影的时间戳
	# 196		 	242				3					881250949


#数据清洗：
echo "数据清洗"

#1、使用python清洗u.date数据生成 movie.csv文件 将时间戳转化为 工作日 (周一~周七)
echo "1、使用python清洗u.date数据生成 movie.csv文件 将时间戳转化为 工作日 (周一~周七)"
python2.7 /root/movie/py/movie_mr.py

#2、将mvice.csv手动上传至hdfs集群
echo "2、将mvice.csv手动上传至hdfs集群"
hdfs dfs -put /root/movie/file/movie.csv /data/inner/RAW/${today}/

#数据分析
echo "数据分析"
#1.1、创建inner_ods_01_movie表 映射缓冲层（ODS）
echo "1.1、创建inner_ods_01_movie表 映射缓冲层（ODS）"

#1.2、将hdfs movice.csv文件导入inner_ods_01_movie表
echo "1.2、将hdfs movice.csv文件导入inner_ods_01_movie表"
beeline -u jdbc:hive2://bd201:10000 -n root -hiveconf today="${today}" -f /root/movie/sql/movie1.sql

#2、进行需求分析，每个需求各创建一个临时表(inner_fct_01_movie01,inner_fct_01_movie02)
echo "2、进行需求分析，每个需求各创建一个临时表(inner_fct_01_movie01,inner_fct_01_movie02)"
beeline -u jdbc:hive2://bd201:10000 -n root -f /root/movie/sql/movie2.sql

#3、将表导出至hdfs上，根据日期创建hdfs FCT层 目录
echo "3、将表导出至hdfs上，根据日期创建hdfs FCT层 目录"
beeline -u jdbc:hive2://bd201:10000 -n root -hiveconf today="${today}" -f /root/movie/sql/movie3.sql

#数据可视化
echo "数据可视化"
#1、用sqoop将数据导入mysql
echo "1、用sqoop将数据导入mysql"
#需求1
sqoop export --connect jdbc:mysql://bd201:3306/movie_bigdata?serverTimezone=Asia/Shanghai --username root --password ${bdpassword} --table movice_weekday_peak --columns weekday,uno --export-dir /data/inner/FCT/${today}/movie01 -m 1
#需求2
sqoop export --connect jdbc:mysql://bd201:3306/movie_bigdata?serverTimezone=Asia/Shanghai --username root --password ${bdpassword} --table movie_score_rank10 --columns movie_id,movie_num --export-dir /data/inner/FCT/${today}/movie02 -m 1
#2、前端显示。。。
















